package ch.zbw.vokabeltrainer.logik;

import java.util.ArrayList;
/**
 * In dieser Klasse wird ein Benutzer Instansiert mit seinem Benutzername und all seinen untergruppen
 * über die Sprachenkombination können all seine Sprachen und themas ausgelesen werden.
 * 
 */
public class Benutzer {

	private String username;// Speichert den Benutzername
	private ArrayList<SprachenKomb> sprachenkomb;// Speichert all seine Sprachenkombinationen
	/**
	 * Diser Konstruktor erstellt einen Benutzer mit dem Namen und initialisiert die ArrayListe der Sprachenkombinationen
	 * 
	 * @param username Benutzername der abgespeichert wird in der Variable
	 */
	public Benutzer(String username) {
		this.username = username;//specihert den eigegebenen Benutzername
		this.sprachenkomb = new ArrayList<SprachenKomb>();//Initialisiert die ArraListe
	}
	/**
	 * Dise Methode gibt dem Benutzername zurück
	 * 
	 * @return Benutzername als String
	 */
	public String getUsername() {
		return username;
	}
	/**
	 * Setzt den Benutzername mit dem eingegebenen String
	 * 
	 * @param username Ueberschriebt den Benutzername mit dem eingegeben String
	 */
	public void setUsername(String username) {
		this.username = username;
	}
	/**
	 * Dise Methode gibt die SprachenKomb-Referenz der eingegeben positionsnummer von der ArrayListe
	 * 
	 * @param listenposition in der Arrayliste Integer
	 * @return	Sprachenkombinations Object
	 */
	public SprachenKomb getSprachenKomb(int listenposition) {
		return sprachenkomb.get(listenposition);
	}
	/**
	 * Diese methode erstellt eine neue SprachenKombination und füg diese der ArrayListe hinzu
	 * 
	 * @param lernSprache Name String
	 * @return gib die soeben erstellte Sprachenkomb. Object zurück
	 */
	public SprachenKomb newSprachenKomb(String lernSprache) {
		int index = -1;
		index -= this.sprachenkomb.indexOf(this.sprachenkomb.add(new SprachenKomb(lernSprache)));
		return this.sprachenkomb.get(index);
		
	}
	/**
	 * Dise Methode gibt die ganze ArrayListe zurück
	 * @return Arrayliste mit Sprachenkomb Objecten
	 */
	public ArrayList<SprachenKomb> getSprachenWahlArray(){
		return sprachenkomb;
	}
	/**
	 * Dise Methode löscht oder initialiesiert die ArrayListe wieder auf Null
	 */
	public void sprachenKombLoeschen(){
		sprachenkomb = new ArrayList<SprachenKomb>();
	}
		
}
